Section 2.2.2.3
File Output Options


Section 2.2.2.3.1
Output File Type

Output_to_File=bool Sets file output on/off
+F Sets file output on (use default type)
-F Sets file output off
Output_File_Type=x Sets file output format to 'x'
+Fxn Sets file output on; sets format 'x', depth 'n'
-Fxn Sets file output off; but in future use format 'x', depth 'n'
Output_Alpha=bool Sets alpha output on/off
+UA Sets alpha output on
-UA Sets alpha output off
Output_File_Name=file Sets output file to file
+Ofile Same as Output_File_Name=file
Buffer_Output=bool Turn output buffering on/off
+B Turn output buffering on
-B Turn output buffering off
Buffer_Size=n Set output buffer size to 'n' kilobytes. If n is zero, no buffering. If n < system default, the system default is used.
+Bn Turn buffer on, set size n
-Bn Turn buffer off, but for future set size n
Bits_Per_Color=n Sets file output bits/color to 'n'

By default, POV-Ray writes an image file to disk. When you are developing a scene and doing test renders, the graphic preview may be sufficient. To save time and disk activity you may turn file output off with Output_to_File=off or -F.

The default type of image file depends on which platform you are using. MS-DOS and most others default to 24-bit uncompressed Targa. See your platform-specific documentation to see what your default file type is. You may select one of several different file types using Output_File_Type=x or +Fx where x is one of the following...

+FC Compressed Targa-24 format (RLE, run length encoded)
+FN New PNG (portable network graphics) format
+FP Unix PPM format
+FS System-specific such as Mac Pict or Windows BMP
+FT Uncompressed Targa-24 format

Note that the obsolete +FD dump format and +FR raw format have been dropped from POV-Ray 3.0 because they were rarely used and no longer necessary. PPM, PNG, and system specific formats have been added. PPM format images are uncompressed, and have a simple text header, which makes it a widely portable image format. PNG is a new image format designed not only to replace GIF, but to improve on its shortcomings. PNG offers the highest compression available without loss for high quality applications, such as ray-tracing. The system specific format depends on the platform used and is covered in the appropriate system specififc documentation.

Most of these formats output 24 bits per pixel with 8 bits for each of red, green and blue data. PNG allows you to optionally specify the output bit depth, from 5 to 16 bits for each of the red, green, and blue colors, giving from 15 to 48 bits of color information per pixel. The default output depth for all formats is 8 bits/color (16 million possible colors), but this may be changed for PNG format files by setting Bits_Per_Color=n or by specifying +FNn, where n is the desired bit depth.

Specifying a smaller color depth like 5 bits/color (32768 colors) may be enough for people with 8- or 16-bit (256 or 65536 color) displays, and will improve compression of the PNG file. Higher bit depths like 10 or 12 may be useful for video or publishing applications, and 16 bits/color is good for grayscale height field output (See section "Height Field" for details on height fields).

Targa format also allows 8 bits of alpha transparency data to be output, while PNG format allows 5 to 16 bits of alpha transparency data, depending on the color bit depth as specified above. You may turn this option on with Output_Alpha=on or +UA. The default is off or -UA. See section "Using the Alpha Channel" for further details on transparency.

In addition to support for variable bit-depths, alpha channel, and grayscale formats, PNG files also store the Display_Gamma value so the image displays properly on all systems (see section "Display Hardware Settings" ). The HF_Gray_16 global setting, as described in section "HF_Gray_16" will also affect the type of data written to the output file.


Section 2.2.2.3.2
Output File Name

Output_File_Name=file Sets output file to file
+Ofile Same as Output_File_Name=file

The default output filename is created from the scene name and need not be specified. The scene name is the input name with all drive, path, and extension stripped. For example if the input name is +Ic:\povray3\mystuff\myfile.pov the scene name is myfile. The proper extension is appended to the scene name based on the file type. For example myfile.tga or myfile.png might be used.

You may override the default output name with the Output_File_Name=file or +Ofile option. For example:

Input_File_Name=myinput.pov Output_File_Name=myoutput.tga

If an output file name of "-" is specified (a single minus sign), then the output will be written to the standard output, usually the screen. The output can then be piped into another program or to a GUI if desired.


Section 2.2.2.3.3
Output File Buffer

Buffer_Output=bool Turn output buffering on/off
+B Turn output buffering on
-B Turn output buffering off
Buffer_Size=n Set output buffer size to 'n' kilobytes. If n is zero, no buffering. If n < system default, the system default is used.
+Bn Turn buffer on, set size n
-Bn Turn buffer off, but for future set size n

The Buffer_Output and Buffer_Size options and the +B switch allows you to assign large buffers to the output file. This reduces the amount of time spent writing to the disk. If this parameter is not specified, then as each row of pixels is finished, the line is written to the file and the file is flushed. On most systems, this operation ensures that the file is written to the disk so that in the event of a system crash or other catastrophic event, at least part of the picture has been stored properly and retrievable on disk. The default value is Buffer_Output=off.


Section 2.2.2.4
CPU Utilization Histogram

The CPU utilization histogram is a way of finding out where POV-Ray is spending its rendering time, as well as an interesting way of generating heightfields. The histogram splits up the screen into a rectangular grid of blocks. As POV-Ray renders the image, it calculates the amount of time it spends rendering each pixel, and then adds this time to the total rendering time for each grid block. When the rendering is complete, the histogram is a file which represents how much time was spent computing the pixels in each grid block.

Note that not all versions of POV-Ray allow the creation of histograms. As well, the histogram output is dependent on the file type, as well as the system that POV-Ray is being run on.


Section 2.2.2.4.1
File Type

Histogram_Type=x Set histogram type to x (turn off if type is 'X')
+HTx Same as Histogram_Type=x

The histogram output file type is nearly the same as that used for the image output file types in "Output File Type" . The available histogram file types are as follows:

+HTC Comma separated values (CSV) often used in spreadsheets
+HTN New PNG (portable network graphics) format grayscale
+HTP Unix PPM format
+HTS System-specific such as Mac Pict or Windows BMP
+HTT Uncompressed Targa-24 format (TGA)
+HTX No histogram file output is generated

Note that +HTC does not generate a compressed Targa-24 format output file, but rather a text file with a comma-separated list of the time spent in each grid block, in left-to-right and top-to bottom order. The units of time output to the CSV file are system dependent. See the system specific documentation for further details on the time units in CSV files.

The Targa and PPM format files are in the POV heightfield format (see "Height Field" ), so the histogram information is stored in both the red and green parts of the image, which makes it unsuitable for viewing. When used as a height field, lower values indicate less time spent calculating the pixels in that block, while higher indicate more time spent in that block.

PNG format images are stored as grayscale images, and are useful for both viewing the histogram data as well as for use as a heightfield. In PNG files, the darker (lower) areas indicate less time spent in that grid block, while the brighter (higher) areas indicate more time spent in that grid block.


Section 2.2.2.4.2
File Name

Histogram_Name=file Set histogram name to file
+HNfile Same as Histogram_Name=file

The histogram file name is the name of the file in which to write the histogram data. If the file name is not specified, it will default to "histgram.ext", where ext is based on the file type specified previously. Note that if the histogram name is specified, the file name extension should match the file type.


Section 2.2.2.4.3
Grid Size

Histogram_Grid_Size=xx.yy Set histogram grid to xx by yy
+HSxx.yy Same as Histogram_Grid_Size=xx.yy

The histogram grid size gives the number of times the image is split up in both the horizontal and vertical directions. For example:

povray +Isample +W640 +H480 +HTN +HS160.120 +HNhistogrm.png

will split the image into 160x120 grid blocks, each of size 4x4 pixels, and output a PNG file, suitable for viewing or for use as a heightfield. Smaller numbers for the grid size mean more pixels are put into the same grid block. With CSV output, the number of values output is the same as the number of grid blocks specified. For the other formats, the image size is identical to the rendered image, rather than the specified grid size, to allow easy comparison between the histogram and the rendered image.. If the histogram grid size is not specified, it will default to the same size as the image, so there will be one grid block per pixel.

Note that on systems that do task-switching or multi-tasking, the histogram may not exactly represent the amount of time POV-Ray spent in a given grid block, since the histogram is based on real time rather than CPU time. As a result, time may be spent for operating system overhead or on other tasks running at the same time. This will cause the histogram to have speckling, noise or large spikes. This can be reduced by decreasing the grid size so that more pixels are averaged into a given grid block.


Section 2.2.3
Scene Parsing Options

POV-Ray reads in your scene file and processes it to create an internal model of your scene. The process is called parsing. As it parses your file, it may read other files along the way. This section covers options concerning what to parse, where to find it, and what version specific assumptions it should make while parsing it.

Section 2.2.3.1
Input File Name

Input_File_Name=file Sets input file name to file
+Ifile Same as Input_File_Name=file

You will probably always set this option but if you do not, the default input filename is object.pov. If you do not have an extension, then .pov is assumed. On case-sensitive operating systems, both .pov and .POV are tried. A full path specification may be used. For example: +Ic:\povray3\mystuff\myfile.pov. In addition to specifying the input file name, this also establishes the scene name.

The scene name is the input name with all drive, path, and extension stripped. In this example, the scene name is myfile. This name is used to create a default output file name and it is referenced other places.

If you use "-" as the input file name the input will be read from standard input. Using this you can pipe a scene created by a program to POV and render it without having a scene file.

Under MS-DOS you can try this feature with

type ANYSCENE.POV | povray -i-

Section 2.2.3.2
Library Paths

Library_Path=path Add path to list of library paths
+Lpath Same as Library_Path=path

POV-Ray looks for files in the current directory. If it does not find a file it needs, it looks in various other library directories which you specify. POV-Ray does not search your operating system path. It only searches the current directory and directories which you specify with this option. For example the standard include files are usually kept in one special directory. You tell POV-Ray to look there with...

Library_Path=c:\povray3\include

You must not specify any final path seperators (\ or /) at the end.

Multiple uses of this option switch do not override previous settings. Up to ten unique paths may be specified. If you specify the exact same path twice, it is only counts once. The current directory will be searched first followed by the indicated library directories in the order in which you specified them.


Section 2.2.3.3
Language Version

Version=n.n Set initial language compatibility to version n.n
+MVn.n Same as Version=n.n

While many language changes have been made for POV-Ray 3.0, all of version 2.0 syntax and most of version 1.0 syntax still works. Whenever possible we try to maintain backwards compatibility. One feature introduced in 2.0 that was incompatible with any 1.0 scene files is the parsing of float expressions. Setting +MV1.0 or Version=1.0 turns off expression parsing as well as many warning messages so that nearly all 1.0 files will still work. The changes between 2.0 and 3.0 are not as extensive. Setting Version=2.0 is only necessary to eliminate some warning messages. Naturally the default setting for this option is Version=3.0

The #version language directive also can be used to change modes several times within scene files. This option only affects the initial setting.

See "Version Directive" for more details about the language version directive.


Section 2.2.3.4
Removing User Bounding

Remove_Bounds=bool Turn unnecessary bounds removal on/off
+UR Turn unnecessary bounds removal on
-UR Turn unnecessary bounds removal off
Split_Unions=bool Turn split bounded unions on/off
+SU Turn split bounded unions on
-SU Turn split bounded unions off

Early versions of POV-Ray had no system of automatic bounding or spatial sub-division to speed up ray-object intersection tests. Users had to manually create bounding boxes to speed up the rendering. POV-Ray 3.0 has more sophisticated automatic bounding than any previous version. In many cases the manual bounding on older scenes is slower than the new automatic systems. Therefore POV-Ray removes manual bounding when it knows it will help. In rare instances you may want to keep manual bounding. Some older scenes incorrectly used bounding when they should have used clipping. In these scenes if POV-Ray removes the bounds, the image will not look right. To turn off the automatic removal of manual bounds, you should specify Remove_Bounds=off or -UR. The default is +UR.

One area where the jury is still out is the splitting of manually bounded unions. Note unbounded unions are always split into their component parts so that automatic bounding works better. Most users do not bound unions because they know that doing so is usually slower. If you do manually bound a union we presume you really want it bound. For safety sake we do not presume to remove such bounds. If you want to remove manual bounds from unions, you should specify Split_Unions=on or +SU. The default is -SU.


Section 2.2.4
Shell-out to Operating System

Pre_Scene_Command=s Set command before entire scene
Pre_Frame_Command=s Set command before each frame
Post_Scene_Command=s Set command after entire scene
Post_Frame_Command=s Set command after each frame
User_Abort_Command=s Set command when user aborts POV-Ray
Fatal_Error_Command=s Set command when POV-Ray has fatal error

Note no +/- switches are available for these options. They cannot be used from the command line. They may only be used from INI files.

POV-Ray offers you the opportunity to shell-out to the operating system at several key points to execute another program or batch file. Usually this is used to manage files created by the internal animation loop however the shell commands are available for any scene. The CMD is a single line of text which is passed to the operating system to execute a program. For example:

Post_Scene_Command=tga2gif -d -m myfile

would use the utility tga2gif with the -d and -m parameters to convert myfile.tga to myfile.gif after the scene had finished rendering.


Next Section
Table Of Contents